#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    //@violence pass 208/308
    // exceed time
    // bool is_increasing(int num)
    // {
    //     string s = to_string(num);
    //     int length = s.size();
    //     int x = s[0];
    //     for (int i = 1; i < length; i++)
    //     {
    //         int y = s[i];
    //         if (x > y)
    //         {
    //             return false;
    //         if (is_increasing(i))
    //         {
    //         x = y;
    //     }
    //     return true;
    // }
    // int monotoneIncreasingDigits(int n)
    // {
    //     int num = 0;
    //     for (int i = n; i >= 0; i--)
    //     {
    //         if (is_increasing(i))
    //         {
    //             num = i;
    //             break;
    //         }
    //     }
    //     return num;
    // }

    // bool is_increasing(string s)
    // {
    //     int length = s.size();
    //     int x = s[0];
    //     for (int i = 1; i < length; i++)
    //     {
    //         int y = s[i];
    //         if (x > y)
    //         {
    //             return false;
    //         }
    //         x = y;
    //     }
    //     return true;
    // }
    // int monotoneIncreasingDigits(int n)
    // {
    //     string s = to_string(n);
    //     int length = s.size();
    //     while (!is_increasing(s))
    //     {
    //         for (int i = 0; i < length - 1; i++)
    //         {
    //             if (s[i + 1] < s[i])
    //             {
    //                 s[i] = s[i] - 1;
    //                 for (int j = i + 1; j < length; j++)
    //                 {
    //                     s[j] = '9';
    //                 }
    //             }
    //         }
    //     }
    //     return stoi(s);
    // }

    int monotoneIncreasingDigits(int n)
    {
        string s = to_string(n);
        int length = s.size();
        int flag = length;
        for (int i = length - 1; i > 0; i--)
        {
            if (s[i - 1] > s[i])
            {
                flag = i;
                s[i - 1]--;
            }
        }
        for (int i = flag; i < length; i++)
        {
            s[i] = '9';
        }
        return stoi(s);
    }
};

int main()
{
    Solution sol;
    cout << sol.monotoneIncreasingDigits(332) << endl;
    return 0;
}